package com.insight.common.aspect;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import com.insight.common.util.MPRefreshTokenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author JinPengDong
 * @date 2023/1/11
 */
@Slf4j
@Aspect
@Component
public class MPAccessTokenAspect {

    @Autowired
    private MPRefreshTokenUtil mpRefreshTokenUtil;

    /**
     * 定义切点，匹配带有@MPAccessToken注解的方法。
     */
    @Pointcut("@annotation(com.insight.common.aspect.annotation.MPAccessToken)")
    public void pointCut() {

    }

    /**
     * 前置通知，获取并刷新微信公众号AccessToken。
     */
    @Before("pointCut()")
    public void getAccessToken() {
        mpRefreshTokenUtil.getAccessToken();
    }
}
